package bbalgae;

import bbalgae.J28_Interface.Printable;

/* 인터페이스
 * 서비스 제공자 service provider와 그것을 사용하는 client 간의 계약으로 간주
 * 인터페이스의 구성원으로 추상메소드와 상수 멤버변수만 선언가능
 * 인터페이스 에서는 private으로 선언할수 없다. public, final, static만 사용가능
 * 또한,초기화도 필요, 단 생략은 가능하다.
 * 인터페이스의 메소드에는 public, abstract만 사용가능 그외 사용불가 단 생략가능
 * 몸체없는 메소드 - 추상메소드
 */

public interface J28_Interface {
	// 멤버변수
	int A = 1;
	final int B = 2;
	static int C = 3;
	static final int D = 4;
	public static final int E = 5;
	
	//몸체 없는 메소드 - 추상메소드
	void sayHello1();
	public void sayHello2();
	public abstract void sayHello3();

	interface Printable {
		public final String a = "1";
 
		// private final int b = 2; private으로는 선언 불가

		public void print();
	}
}
